package main

import (
	_ "beegoProject18/models/auth"
	_ "beegoProject18/models/finance"
	_ "beegoProject18/models/my_center"
	_ "beegoProject18/models/news"
	_ "beegoProject18/routers"
	"beegoProject18/utils"
	"fmt"
	"github.com/astaxie/beego"
	"github.com/astaxie/beego/logs"
	"github.com/astaxie/beego/orm"
	_ "github.com/go-sql-driver/mysql"
	"log"
)

/*
9.106【车辆管理模块】车辆申请页面完善
	1. 新建申请方法 cars_apply_controller.go ToApply 车辆申请页面
	2. 拷贝cars_add.html -> cars_apply.html
	3. 路由
	4. 数据库添加url
	5. 编辑 cars_apply.html 34,37,删除（车辆名称唯一），43,46,52，55,70-79，
	6. cars_apply_list.html 添加申请控制器90H,
	7. 增加控制器 DoApply
	8. 路由
	9. cars_apply.html 修改ajax控制器 91，120，85-87,94-96,
	10. 编辑DoApply 获取数据

9.107【车辆管理模块】车辆申请功能完成
	1. ToApply 内获取传过来到ID
	2. cars-apply.html 内渲染出id 61H,89H,
	4. 定义 DoApply 数据获取


9.108【车辆管理模块】查看我的申请进度
	1. 权限列表添加我的申请， 一级菜单-车辆管理，二级菜单-我的申请，
	2. 新建我的申请 cars_apply_controller.go MyApply
	3. 拷贝车辆申请列表 cars-apply-list -> my-apply-list.html
	4. 路由
	5. 数据库添加url
	6. 定义逻辑 MyApply
	7.my-apply-list.html 35H，64-65H，68-86H，

9.109【车辆管理模块】车辆审批分页完成
	1. 创建车辆审批函数 AuditApply
	2. 拷贝 cars-apply-list.html -> audit-apply-list.html
	3. 路由和数据库修改
	4. 编辑AuditApply 函数逻辑
	5. 编辑audit-apply-list.html 35，64，68，73-75，80，82，84，94，88-90，99-113,244,250,
	6. 创建车辆审核函数 ToAuditApply
	7. 路由


9.110【车辆管理模块】审核功能完成
	1. 拷贝车辆审核页面 cars_apply.html => audit_apply.html
	2. 定义 ToAuditApply函数逻辑
	3. audit_apply.html 38,47,50-71，审核状态判断56-62H，时间插件72H,删除时间插件86-96H，监听获取102-104H，108H,参数传入111-113H,
	5. 路由
	6. 创建并编辑 DoAuditApply 函数逻辑
	7. 页面测试

9.111【车辆管理模块】车辆归还 - 在我的申请页面增加车辆归还
	1. my-apply-list.html 62H，66H，68H，75H, 89-99H，104H，105-118H，
	2. 增加点击归还方法 DoReturn
	3. 路由
	4.
	5.
	6.
	7.

*/

func init() {
	user := beego.AppConfig.DefaultString("mysql::Username", "root")
	pwd := beego.AppConfig.DefaultString("mysql::Password", "Ideal123")
	host := beego.AppConfig.DefaultString("mysql::Host", "127.0.0.1")
	port := beego.AppConfig.DefaultInt("mysql::Port", 3306)
	dbName := beego.AppConfig.DefaultString("mysql::DbName", "beegoProject")

	dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=true&loc=PRC",
		user, pwd, host, port, dbName)

	orm.RegisterDriver("mysql", orm.DRMySQL)
	orm.RegisterDataBase("default", "mysql", dsn)

	db, err := orm.GetDB("default")
	if err != nil {
		log.Fatal(err)
	} else if err := db.Ping(); err != nil {
		log.Fatal(err)
	}
}

func main() {

	orm.RunCommand()
	/*	orm.Debug = true*/
	beego.BConfig.WebConfig.Session.SessionOn = true

	// 未登录请求拦截
	beego.InsertFilter("/main/*", beego.BeforeRouter, utils.LoginFilter)

	// 日志
	logs.SetLogger(logs.AdapterMultiFile, `{"filename":"logs/beego.log","separate":["error","info","debug"]}`)
	logs.SetLogFuncCallDepth(3)
	beego.SetStaticPath("/upload", "upload")

	beego.Run()
}
